import logging
import os
import time

"""该文件是对日志文件的封装"""
class MyLogger():

    def __init__(self):
        # 1.定义一个日志记录器
        self.logger = logging.getLogger()
        self.logger.setLevel(logging.INFO)

        # 2.定义控制台输出的处理器,并且设置日志级别
        sh = logging.StreamHandler()
        sh.setLevel(logging.INFO)

        # 3.定义一个输出到文件的处理器，并且设置日志级别
        file_name = "{}.log".format(time.strftime("%Y-%m-%d")) #根据time的随机文件名
        pwd_dirUrl = os.path.dirname(__file__)# 获取当前目录
        pwd_dirUrl = os.path.join(pwd_dirUrl,"..","log")# 拼接目录
        if not os.path.isdir(pwd_dirUrl):# 判断log目录是否存在
            os.makedirs(pwd_dirUrl)
        fh = logging.FileHandler(os.path.join(pwd_dirUrl,file_name),encoding="utf-8")
        fh.setLevel(logging.INFO)

        # 4.定义日志输出格式，并且加入到控制台和文本的输出
        formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s - %(lineno)s - %(message)s")
        sh.setFormatter(formatter)
        fh.setFormatter(formatter)

        # 5.将两个处理器添加到记录器中
        self.logger.addHandler(sh)
        self.logger.addHandler(fh)

# 导出日志
myLog = MyLogger().logger

# 其他文件导入该文件的myLog就可以通过下面命令使用from 文件路径 import myLog
# myLog.debug("这是一个bug")